package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/*
* 配置类，用与创建Aliossutil对象，
* 可以用注解的方式@componet生成对象，并用依赖注入的方式注入aliyunproperties并获取属性值
* */
@Configuration
@Slf4j
public class Ossconfiguration {
/*    @Autowired
    private AliOssProperties aliOssProperties*/
//    为什么不用依赖注入，因为方法的形参传入了对象（创建对象在ioc容器中管理）
    @Bean
    @ConditionalOnMissingBean//保证只有一个工具类对象，因为不用那么多
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传实例对象");
      return   new AliOssUtil(aliOssProperties.getEndpoint(),
              aliOssProperties.getAccessKeyId(),
              aliOssProperties.getAccessKeySecret(),
              aliOssProperties.getBucketName());
    }
}
